﻿#define  _CRT_SECURE_NO_WARNINGS 1
//1.已知1瓶汽⽔1元，2个空瓶可以换⼀瓶汽⽔，输⼊整数n（n >= 0），表⽰n元钱
//计算可以买多少瓶汽水
//请编程实现。
//int main()
//{
//	int n = 0;
//	int total = 0; // 总共能喝多少汽水
//	int empty = 0; // 空瓶
//	scanf("%d", &n);
//	// 买n瓶汽水，并且喝完后省n个空瓶
//	// 买了n瓶汽水，喝完后总喝的数量增加n，空瓶也增加n
//	total += n;
//	empty += n;
//
//	// 重复用空瓶子购买汽水直至空瓶不够2
//	while (empty >= 2)
//	{
//		total += empty / 2;
//		// 换完后，空瓶数量 = 兑换时用掉的空瓶 + 兑换剩下的空瓶
//		empty = empty / 2 + empty % 2;
//	}
//	printf("%d\n", total);
//	return 0;
//}





//2.输⼊⼀个整数n，打印对应2* n - 1⾏的菱形图案，
// ⽐如，输⼊7，输出如下图案，图案总共13⾏
//      *
//     ***
//    *****
//   *******
//  *********
// ***********
//*************
// ***********
//  *********
//   *******
//    *****
//     ***
//      *
#include <stdio.h>
//int main()
//{
//	int n = 0;
//	// 输入
//	scanf("%d", &n);
//	// 打印上半部分n行 包括中间一行
//	int i = 0;
//	for (i = 0; i < n; i++)
//	{
//		// 打印空格
//		int j = 0;
//		for (j = 0; j < n - 1 - i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j < 2 * i + 1; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	// 打印下半部分n-1行
//	for (i = 0; i < n-1; i++)
//	{
//		// 打印空格
//		int j = 0;
//		for (j = 0; j <= i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j < 2 * (n - 1 - i)-1; j++)
//		{
//			printf("*");
//		}
//		printf("\n");
//	}
//	return 0;
//}





//3.输⼊⼀个字符串，将字符串中⼤写字⺟全部转为⼩写字⺟，⼩写字⺟转成⼤写字⺟，
// 其他字符保持不变。注：字符串的⻓度⼩于等于30，其中字符串中包含空格。
int main()
{
	// 创建这个数组，用于存储字符串
	char buf[31] = { 0 };
	// 读取遇到换行符\n之前的所有字符存入char数组
	scanf("%[^\n]s", buf);
	int i = 0;

	// 遍历字符串
	while (buf[i])
	{
		// 判断当前字符是否为小写字母
		if (buf[i] >= 'a' && buf[i] <= 'z')
		{
			buf[i] -= 32;
		}
		// 判断是否为大写字母
		else if (buf[i] >= 'A' && buf[i] <= 'Z')
		{
			buf[i] += 32;
		}

		else
		{
			buf[i] = buf[i];
		}
		i++;
	}
	printf("%s\n", buf);

	return 0;
}